1. Field
The present invention relates to servers and, more particularly, to networked platforms.
2. Background Information
One problem with accessing the Internet using software executing on a computer, such as a personal computer (PC), referred to in this context as a browser, is the delay or latency perceived by users until the web site or web page being accessed is displayed on the computer screen. Recently, so-called “auto-fetch” utilities have gained popularity with users who routinely browse the World Wide Web (the Web). These utilities are designed to “guess” and retrieve web objects or data objects of particular interest to the user in the background (e.g., while the user is reading a web page), thereby reducing the user's visible latency for page loading if the pages they subsequently browse are already available in a local cache on their PC. Another application of this approach is often used in off-line browsers, which allows users to browse these cached web pages without being connected to the Internet. When the user accesses the Web through a network proxy, that is, a network device or platform executing proxy software employed to access the Web, however, such auto-fetch utilities may have an undesirable adverse effect on a proxy cache, that is, the local cache for a platform executing proxy software, that uses a conventional least-recently-used (LRU)-based replacement policy, for example. Since the auto-fetch utility may continuously generate arbitrary large numbers of requests for web objects to the network proxy, popular objects or pages for the majority of so-called “typical users,” that is, those not using such auto-fetch utilities, are replaced by those objects requested by the auto-fetch utilities. As a result, typical users may experience a greater latency than they may otherwise, due at least in part to the abnormally large volumes of cached objects attributable to auto-fetch requests. A similar problem may also arise on a network server, such as a content server, which serves large numbers of users. Again, users may experience degraded performance when accessing such a server due at least in part to the inordinate resource demands of auto-fetching utilities.
Other on-line pre-fetching schemes have also been proposed to reduce the latency perceived by users by predicting and pre-fetching those web pages that are likely to be requested next, while the user is browsing through the currently displayed-web page. See, for example, “Using Predictive Pre-fetching to Improve World-Wide Latency”, by V. Padmanabhann and J. C. Mogul, appearing in ACM SIGCOMM Computer Communication Review, pp. 22-36, 1996. The proposed scheme executes a prediction process on the server side to compute the probability or likelihood that a particular web page will be accessed next and conveys this information to the client. The client program executing on the client PC then decides whether or not to actually “pre-fetch” the page. Two recently introduced commercial products offer an on-line pre-fetching feature: Peak Net.Jet available from Peak Technologies Inc. and Blaze from Datatytics, Inc. Net.Jet does not rely on server computation information to make pre-fetching decisions. Instead, client Java code performs this operation. Blaze, however, implements a server side program to assist the pre-fetching.
Several problems exist with these proposed approaches. First, the server side program imposes extra computational load on already frequently overworked Web servers. In addition, technologies like Blaze employ the technique of making changes to all deployed Web servers in order to operate. However, these Web servers may number in the millions. Second, the technique employing pure client side pre-fetching typically generates a lot of network traffic and may jam Web servers with requests that may not ultimately improve performance.
A need therefore exists for a technique of predictive pre-fetching that overcomes the foregoing disadvantages.